Demo Click Disini.
Style.css :
.itemSlider {
min-width: 210px;
height: 100%;
}
.dataItem img {
width: 100%;
height: 315px;
border-radius: 8px;
object-fit: fill;
}
.sliderImg,.dataItem a{
-webkit-user-drag: none;
-ms-user-drag: none;
-moz-user-drag: none;
user-drag: none;
user-select: none;
}
.dataItem {
position: relative;
}
.num {
position: absolute;
top: 0;
left: 8px;
background: #25008a;
color: white;
padding: 8px 10px;
border-radius: 0 0 8px 8px;
font-weight: 600;
font-size: 16px;
}
#slides {
display: flex;
overflow: hidden;
scroll-behavior:smooth;
gap: 10px;
}
.active{cursor:grab;}
.ItemsTitle{text-align:center;margin-top:4px;font-weight:600;font-size:16px;}
Untuk Menampilkan Hasil Slider :
<div id='slides'></div>
Untuk JS:
$.ajax({
url: 'https://www.forum.projexcode.com/feeds/posts/default?orderby=published&alt=json-in-script&max-results=150',
type: 'get',
dataType: 'jsonp',
success: function(json) {
let target = [],
num = 1;
for(var i = 0;i<json.feed.entry.length;i++){
var key = {};
feeds = json.feed.entry[parseInt(Math.random() * json.feed.entry.length)];
key['title'] = feeds.title.$t;
for(var e = 0;e<feeds.link.length;e++){
key['href'] = feeds.link[e].href;
}
var imgs,
c = feeds.content.$t,
d=c.indexOf("<img"),
e=c.indexOf('src="',d),
f=c.indexOf('"',e+5),
g=c.substr(e+5,f-e-5);
imgs=-1!=d&&-1!=e&&-1!=f&&""!=g?g:"https://images.bizlaw.id/gbr_artikel/images-2_294.webp";
key['img'] = feeds.media$thumbnail != null ? feeds.media$thumbnail.url.replace(/s72-c/,'s500').replace(/=s72-c/,'s500') : imgs;
target[i] = key;
}
var dupe = target.filter((tag, index, array) => array.findIndex(t => t.title == tag.title) == index);
for(var o=0;o<10;o++){
$('#slides').append('<div class="itemSlider"><div class="dataItem"><div><img loading="lazy" src="'+dupe[o].img+'" class="sliderImg" ondragstart="event.preventDefault();"/><div class="num">'+num+++'</div></div><a href="'+dupe[o].href+'"><div class="ItemsTitle">'+dupe[o].title+'</div></a></div></div>');
}
},
error: function() {$('#slides').html('<strong>Error Getting Data!</strong>');}
});
const scrollContainer = document.getElementById("slides");
scrollContainer.addEventListener("wheel", (evt) => {
evt.preventDefault();
scrollContainer.scrollLeft += evt.deltaY;
});
let isDown = false;
let startX;
let scrollLeft;
const slider = document.querySelector('.slides');
const thisImg = document.querySelector('.sliderImg');
const end = (e) => {
isDown = false;
slider.classList.remove('active');
}
const start = (e) => {
isDown = true;
slider.classList.add('active');
startX = e.pageX || e.touches[0].pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
}
const move = (e) => {
if(!isDown) return;
e.preventDefault();
const x = e.pageX || e.touches[0].pageX - slider.offsetLeft;
const dist = (x - startX);
slider.scrollLeft = scrollLeft - dist;
}
(() => {
slider.addEventListener('mousedown', start);
slider.addEventListener('touchstart', start);
slider.addEventListener('mousemove', move);
slider.addEventListener('touchmove', move);
slider.addEventListener('mouseleave', end);
slider.addEventListener('mouseup', end);
slider.addEventListener('touchend', end);
})();
Ubah URL dibawah ini dengan URL kalian :
https://www.forum.projexcode.com
<b:if cond='data:view.isHomepage'>
<style>
.itemSlider {
min-width: 210px;
height: 100%;
}
.dataItem img {
width: 100%;
height: 315px;
border-radius: 8px;
object-fit: fill;
}
.sliderImg,.dataItem a{
-webkit-user-drag: none;
-ms-user-drag: none;
-moz-user-drag: none;
user-drag: none;
user-select: none;
}
.dataItem {
position: relative;
}
.num {
position: absolute;
top: 0;
left: 8px;
background: #25008a;
color: white;
padding: 8px 10px;
border-radius: 0 0 8px 8px;
font-weight: 600;
font-size: 16px;
}
#slides {
display: flex;
overflow: hidden;
scroll-behavior:smooth;
gap: 10px;
}
.active{cursor:grab;}
.ItemsTitle{text-align:center;margin-top:4px;font-weight:600;font-size:16px;}
@media screen and (max-width:720px){
#slides{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}
.itemSlider{scroll-snap-align:center}
}
</style>
</b:if>
letakkan ke tempat mana saja yang mau ditampilkan :
<b:if cond='data:view.isHomepage'>
<div id='slides' class='slides'></div>
</b:if>
<b:if cond='data:view.isHomepage'>
<script>//<![CDATA[
$.ajax({
url: 'https://www.forum.projexcode.com/feeds/posts/default?orderby=published&alt=json-in-script&max-results=150',
type: 'get',
dataType: 'jsonp',
success: function(json) {
let target = [],
num = 1;
for(var i = 0;i<json.feed.entry.length;i++){
var key = {};
feeds = json.feed.entry[parseInt(Math.random() * json.feed.entry.length)];
key['title'] = feeds.title.$t;
for(var e = 0;e<feeds.link.length;e++){
key['href'] = feeds.link[e].href;
}
var imgs,
c = feeds.content.$t,
d=c.indexOf("<img"),
e=c.indexOf('src="',d),
f=c.indexOf('"',e+5),
g=c.substr(e+5,f-e-5);
imgs=-1!=d&&-1!=e&&-1!=f&&""!=g?g:"https://images.bizlaw.id/gbr_artikel/images-2_294.webp";
key['img'] = feeds.media$thumbnail != null ? feeds.media$thumbnail.url.replace(/s72-c/,'s500').replace(/=s72-c/,'s500') : imgs;
target[i] = key;
}
var dupe = target.filter((tag, index, array) => array.findIndex(t => t.title == tag.title) == index);
for(var o=0;o<10;o++){
$('#slides').append('<div class="itemSlider"><div class="dataItem"><div><img loading="lazy" src="'+dupe[o].img+'" class="sliderImg" ondragstart="event.preventDefault();"/><div class="num">'+num+++'</div></div><a href="'+dupe[o].href+'"><div class="ItemsTitle">'+dupe[o].title+'</div></a></div></div>');
}
},
error: function() {$('#bodynotify').html('<strong>Error Getting Data!</strong>');}
});
if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
const scrollContainer = document.getElementById("slides");
scrollContainer.addEventListener("wheel", (evt) => {
evt.preventDefault();
scrollContainer.scrollLeft += evt.deltaY;
});
let isDown = false;
let startX;
let scrollLeft;
const slider = document.querySelector('.slides');
const thisImg = document.querySelector('.sliderImg');
const end = (e) => {
isDown = false;
slider.classList.remove('active');
}
const start = (e) => {
isDown = true;
slider.classList.add('active');
startX = e.pageX || e.touches[0].pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
}
const move = (e) => {
if(!isDown) return;
e.preventDefault();
const x = e.pageX || e.touches[0].pageX - slider.offsetLeft;
const dist = (x - startX);
slider.scrollLeft = scrollLeft - dist;
}
(() => {
slider.addEventListener('mousedown', start);
slider.addEventListener('touchstart', start);
slider.addEventListener('mousemove', move);
slider.addEventListener('touchmove', move);
slider.addEventListener('mouseleave', end);
slider.addEventListener('mouseup', end);
slider.addEventListener('touchend', end);
})();
}
//]]></script>
</b:if>
wajib gunakan Jquery Library pasang di bawah tag <head> jika di blog kalian belum terpasang.
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>
untuk responsive mobila/tampilan mobile kalian sesuaikan sendiri.cuma width image doang.
https://jempolgamer.blogspot.com/
Hapus padding-top: 40%;
di class
.sliderImg
https://blogger.googleusercontent.com/img/a/AVvXsEiseQPhxTLPSgczWYq5N_ghGlLCzk50s6W9hJyxuoTZ3F0TUnokojLSEmbI8RsGma5GQWqLZuGy0uwfHgFvP2xfNAaneYnhzd4vGPwImsU4PdgoX81m-TGpj6Jn5YOQbx9NBUmHfHd5FGOVBhrHRR4NLXZff2RFUZRL6GCT5uQdGnir51v_8ArOPhX4Zg=s313
kalo memang ada class yg sama dan digunain,kamu ganti aja JS-nya dengan dibawah ini:
<b:if cond='data:view.isHomepage'>
<script>//<![CDATA[
$.ajax({
url: 'https://www.forum.projexcode.com/feeds/posts/default?orderby=published&alt=json-in-script&max-results=150',
type: 'get',
dataType: 'jsonp',
success: function(json) {
let target = [],
num = 1;
for(var i = 0;i<json.feed.entry.length;i++){
var key = {};
feeds = json.feed.entry[parseInt(Math.random() * json.feed.entry.length)];
key['title'] = feeds.title.$t;
for(var e = 0;e<feeds.link.length;e++){
key['href'] = feeds.link[e].href;
}
var imgs,
c = feeds.content.$t,
d=c.indexOf("<img"),
e=c.indexOf('src="',d),
f=c.indexOf('"',e+5),
g=c.substr(e+5,f-e-5);
imgs=-1!=d&&-1!=e&&-1!=f&&""!=g?g:"https://images.bizlaw.id/gbr_artikel/images-2_294.webp";
key['img'] = feeds.media$thumbnail != null ? feeds.media$thumbnail.url.replace(/s72-c/,'s500').replace(/=s72-c/,'s500') : imgs;
target[i] = key;
}
var dupe = target.filter((tag, index, array) => array.findIndex(t => t.title == tag.title) == index);
for(var o=0;o<10;o++){
$('#slides').append('<div class="itemSlider"><div class="dataItem"><div><img loading="lazy" src="'+dupe[o].img+'" ondragstart="event.preventDefault();"/><div class="num">'+num+++'</div></div><a href="'+dupe[o].href+'"><div class="ItemsTitle">'+dupe[o].title+'</div></a></div></div>');
}
},
error: function() {$('#bodynotify').html('<strong>Error Getting Data!</strong>');}
});
if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
const scrollContainer = document.getElementById("slides");
scrollContainer.addEventListener("wheel", (evt) => {
evt.preventDefault();
scrollContainer.scrollLeft += evt.deltaY;
});
let isDown = false;
let startX;
let scrollLeft;
const slider = document.querySelector('.slides');
const end = (e) => {
isDown = false;
slider.classList.remove('active');
}
const start = (e) => {
isDown = true;
slider.classList.add('active');
startX = e.pageX || e.touches[0].pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
}
const move = (e) => {
if(!isDown) return;
e.preventDefault();
const x = e.pageX || e.touches[0].pageX - slider.offsetLeft;
const dist = (x - startX);
slider.scrollLeft = scrollLeft - dist;
}
(() => {
slider.addEventListener('mousedown', start);
slider.addEventListener('touchstart', start);
slider.addEventListener('mousemove', move);
slider.addEventListener('touchmove', move);
slider.addEventListener('mouseleave', end);
slider.addEventListener('mouseup', end);
slider.addEventListener('touchend', end);
})();
}
//]]></script>
</b:if>
.dataItem img,.dataItem a{
-webkit-user-drag: none;
-ms-user-drag: none;
-moz-user-drag: none;
user-drag: none;
user-select: none;
}
tambahan jika kamu pengen ubah berapa jumlah yg muncul. cari di JSnya seperti dibawah ini :
for(var o=0;o<10;o++){
$('#slides').append('<div class="itemSlider"><div class="dataItem"><div><img loading="lazy" src="'+dupe[o].img+'" ondragstart="event.preventDefault();"/><div class="num">'+num+++'</div></div><a href="'+dupe[o].href+'"><div class="ItemsTitle">'+dupe[o].title+'</div></a></div></div>');
}
pada loop var o. angka 10 kamu ganti terserah itu nanti jumlah yg akan muncul.
key['img'] = feeds.media$thumbnail != null ? feeds.media$thumbnail.url.replace(/s72-c/,'s500').replace(/=s72-c/,'=s500') : imgs;
kurang nambahin '=' doang pada .replace(/=s72-c/,'s500'). ini untuk mengganti resolusi di URL gambar terbaru
maaf nih banyak banyak nanya dan permintaan yang ngerepotin dari marin
random slidernya udah bekerja sesuai yang ane mau, nah sekarang ane mau untuk title dan efeknya kayak link di sini bisa gk bang? Yang tagsnya gk usah ada
https://moview-templatemark.blogspot.com/
biar lebih enak dilihat dan saat hover mouse ada efeknya, sekali lagi maaf nih bang repotin
.itemSlider {
min-width: 210px;
height: 100%;
}
.dataItem img {
width: 100%;
height: 315px;
border-radius: inherit;
object-fit: fill;
transition: transform .5s ease;
}
.dataItem img,.dataItem a{
-webkit-user-drag: none;
-ms-user-drag: none;
-moz-user-drag: none;
user-drag: none;
user-select: none;
}
.dataItem {
position: relative;
}
.num {
position: absolute;
top: 0;
left: 8px;
background: #25008a;
color: white;
padding: 8px 10px;
border-radius: 0 0 8px 8px;
font-weight: 600;
font-size: 16px;
}
#slides {
display: flex;
overflow: hidden;
scroll-behavior:smooth;
gap: 10px;
}
.active{cursor:grab;}
.ItemsTitle{font-weight:800;font-size:14px;padding: 8px;background:#0000008c;color:white;}
.dataItem div:not(.ItemsTitle):nth-child(1) {
display: flex;
align-items: center;
overflow: hidden;
border-radius: 8px;
}
.itemSlider:hover .dataItem img {
transform: scale(1.5);
}
.itemSlider .dataItem a {
position: absolute;
bottom: 0;
width:100%;
}
@media screen and (max-width:720px){
#slides{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}
.itemSlider{scroll-snap-align:center}
}
untuk demo hasil tetep link Demo Diatas
https://images.bizlaw.id/gbr_artikel/images-2_294.webp
masa ga muncul sama sekali ? brrti masalahnya di replcae resolusi.kalo mau DM ke discordku link blogmu ku cek di tempat.soalnya feed di contoh aman aja itu
silahkan ke Post Terbaru.
https://www.forum.projexcode.com/2022/03/random-post-slider-dragable-wheels.html
Similar Threads