我对此滑块存在以下问题:
我想在箭头到达滑块的末端/开始时禁用它们。
我不希望它制作循环,否则会破坏所有..
JS:
var scaling = 1.30;
//count
var currentSliderCount = 0;
var videoCount = $(".slider-container").children().length;
var showCount = 5;
var sliderCount = videoCount / showCount;
var controlsWidth = 40;
var scollWidth = 0;
$(document).ready(function(){
//$('.slider-container .slide:nth-last-child(-n+4)').prependTo('.slider-container');
init();
});
$( window ).resize(function() {
init();
});
function init(){
// elements
var win = $(window);
var sliderFrame = $(".slider-frame");
var sliderContainer = $(".slider-container");
var slide = $(".slide");
//counts
var scollWidth = 0;
//sizes
var windowWidth = win.width();
var frameWidth = win.width() - 80;
if(windowWidth >= 0 && windowWidth <= 414){
showCount = 2;
}else if(windowWidth >= 414 && windowWidth <= 768){
showCount = 3;
}else{
showCount = 5;
}
var videoWidth = ((windowWidth - controlsWidth * 2) / showCount );
var videoHeight = Math.round(videoWidth / (16/9));
var videoWidthDiff = (videoWidth * scaling) - videoWidth;
var videoHeightDiff = (videoHeight * scaling) - videoHeight;
//set sizes
sliderFrame.width(windowWidth);
sliderFrame.height(videoHeight * scaling);
//sliderFrame.css("top", (videoHeightDiff / 2));
sliderContainer.height(videoHeight * scaling);
sliderContainer.width((videoWidth * videoCount) + videoWidthDiff);
sliderContainer.css("top", (videoHeightDiff / 2));
sliderContainer.css("margin-left", (controlsWidth));
slide.height(videoHeight);
slide.width(videoWidth);
//hover effect
$(".slide").mouseover(function() {
$(this).css("width", videoWidth * scaling);
$(this).css("height", videoHeight * scaling);
$(this).css("top", -(videoHeightDiff / 2));
if($(".slide").index($(this)) == 0 || ($(".slide").index($(this))) % 4 == 0){
// do nothing
}
else if(($(".slide").index($(this)) + 1) % 4 == 0 && $(".slide").index($(this)) != 0){
$(this).parent().css("margin-left", -(videoWidthDiff - controlsWidth));
}
else{
$(this).parent().css("margin-left", - (videoWidthDiff / 2));
}
}).mouseout(function() {
$(this).css("width", videoWidth * 1);
$(this).css("height", videoHeight * 1);
$(this).css("top", 0);
$(this).parent().css("margin-left", controlsWidth);
});
// controls
controls(frameWidth, scollWidth);
}
function controls(frameWidth, scollWidth){
var prev = $(".prev");
var next = $(".next");
next.on("click", function(){
console.log(currentSliderCount);
scollWidth = scollWidth + frameWidth;
$('.slider-container').animate({
left: - scollWidth
}, 300, function(){
if(currentSliderCount >= sliderCount-1){
$(".slider-container").css("left", 0);
currentSliderCount = 1;
scollWidth = 0;
}else{
currentSliderCount++;
}
});
});
prev.on("click", function(){
scollWidth = scollWidth - frameWidth;
$('.slider-container').animate({
left: + scollWidth
}, 300, function(){
currentSliderCount--;
});
});
};
JsFiddle demo 我想在滑块之间创建类似的边距/填充,我已经尝试过,但最后滑块在最后一张幻灯片中得到了巨大的差距......