sliderEffect01
이미지 슬라이드 효과(제이쿼리/자바스크립트)
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
let currentIndex = 0; //현재 첫 번째 보이는 이미지
let sliderCount = slider.length; // 이미지 갯수
//3초에 한번씩 함수를 실행
setInterval(function(){
let nextIndex = (currentIndex+1) % sliderCount;
slider.eq(currentIndex).fadeOut(); //첫 번째 이미지를 사라지게한다.
slider.eq(nextIndex).fadeIn(); //두 번째 이미지를 나타나게한다.
console.log("currentIndex : " + currentIndex);
console.log("nextIndex : " + nextIndex);
currentIndex = nextIndex;
},3000);
const sliderWrap = document.querySelector(".slider-wrap");
const sliderImg = document.querySelector(".slider-img");
const slider = document.querySelectorAll(".slider");
let currentIndex = 0; //현재 보이는 첫 번째 이미지
let sliderCount = slider.length; //이미지 갯수
setInterval(()=>{
let nexIndex = (currentIndex+1) % sliderCount;
slider[currentIndex].style.opacity="0";
slider[nexIndex].style.opacity="1";
currentIndex = nexIndex;
},3000);
sliderEffect02
이미지 슬라이드 효과(제이쿼리/자바스크립트)
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
let currentIndex = 0;
let sliderCount = slider.length;
setInterval(function(){
// if(currentIndex < sliderCount - 1){
// currentIndex++;
// }else {
// currentIndex = 0;
// }
currentIndex < sliderCount - 1 ? currentIndex++ : currentIndex = 0;
let sliderPosition = currentIndex * (-800) + "px";
sliderImg.animate({left:sliderPosition}, 400);
},3000);
const sliderWrap = document.querySelector(".slider-wrap");
const sliderImg = document.querySelector(".slider-img");
const slider = document.querySelectorAll(".slider");
let currentIndex = 0;
let sliderCount = slider.length;
let sliderWidth = document.querySelector(".slider").clientWidth;
setInterval(function(){
// if(currentIndex < sliderCount-1 ){
// currentIndex++;
// }else {
// currentIndex = 0;
// }
currentIndex < sliderCount-1 ? currentIndex++ : currentIndex = 0;
let sliderPosition = currentIndex * - sliderWidth;
// sliderImg.animate({left: sliderPosition},400);
// sliderImg.style.left = sliderPosition;
// sliderImg.style.transition = "all 0.6s";
gsap.to(sliderImg, {duration: 0.6, left: sliderPosition, ease : "expo.out"});
},3000);
sliderEffect03
이미지 슬라이드 효과- 가로로 이동하기(연속적)
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
setInterval(function(){
sliderImg.animate({left: "-800px"},400, function(){
$(".slider:first-child").appendTo(sliderImg);
sliderImg.css("left","");
});
},3000);
const sliderWrap = document.querySelector(".slider-wrap");
const sliderImg = document.querySelector(".slider-img");
const slider = document.querySelectorAll(".slider");
let sliderCount = slider.length;
let sliderWidth = sliderImg.clientWidth / 6;
let currentIndex = 0;
let clone = sliderImg.firstElementChild.cloneNode(true);
sliderImg.appendChild(clone);
function sliderEffect(){
currentIndex++;
sliderImg.style.transition = "0.3s";
sliderImg.style.transform = `translateX(${-sliderWidth * currentIndex}px)`
if(currentIndex == 5){
setTimeout(()=>{
sliderImg.style.transition = "0s";
sliderImg.style.transform = "translateX(0)"
}, 301);
currentIndex = 0;
}
}
setInterval(sliderEffect, 2100);
sliderEffect04
이미지 슬라이드 효과- 위로 넘기기
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
let sliderspeed = 400;
let currentIndex = 0;
let silderCount = slider.length -1;
let sliderHeight = slider.height();
// 한바퀴
// setInterval(function(){
// currentIndex < silderCount ? currentIndex++ : currentIndex = 0;
// let sliderPosition = currentIndex * -sliderHeight;
// sliderImg.animate({top : sliderPosition},sliderspeed);
// }, 3000);
//연속적으로
setInterval(function(){
sliderImg.animate({top : -sliderHeight },sliderspeed, function(){
$(".slider:eq(0)").appendTo(sliderImg);
sliderImg.css("top","");
});
},3000);
sliderEffect05
이미지 슬라이드 효과- 버튼만들기
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
const sliderBtn = $(".slider-btn");
let currentIndex = 0;
let sliderCount = slider.length;
let sliderWidth = slider.width();
let sliderHeight = slider.height();
let sliderTotalWidth = sliderWidth * sliderCount;
sliderImg.css({ width: sliderTotalWidth, height: sliderHeight, marginLeft: - sliderWidth});
$(".slider:last-child").prependTo(sliderImg);//맨뒤에있는게 앞으로 있을 수 있도록
function moveLeft(){
sliderImg.animate({left: + sliderWidth}, 400, function(){
$(".slider:last-child").prependTo(sliderImg);
sliderImg.css("left","");
});
}
function moveRight(){
sliderImg.animate({left: - sliderWidth}, 400, function(){
$(".slider:first-child").appendTo(sliderImg);
sliderImg.css("left","");
});
}
sliderBtn.find(".prev").click(function(){
moveLeft();
});
sliderBtn.find(".next").click(function(){
moveRight();
});
sliderEffect06
이미지 슬라이드 효과- 버튼만들기
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
const sliderBtn = $(".slider-btn");
let currentIndex = 0;
let sliderCount = slider.length;
let sliderWidth = slider.width();
let sliderHeight = slider.height();
let sliderTotalWidth = sliderWidth * sliderCount;
sliderImg.css({ width: sliderTotalWidth, height: sliderHeight, marginLeft: - sliderWidth});
$(".slider:last-child").prependTo(sliderImg);//맨뒤에있는게 앞으로 있을 수 있도록
function moveLeft(){
sliderImg.animate({left: + sliderWidth}, 400, function(){
$(".slider:last-child").prependTo(sliderImg);
sliderImg.css("left","");
});
}
function moveRight(){
sliderImg.animate({left: - sliderWidth}, 400, function(){
$(".slider:first-child").appendTo(sliderImg);
sliderImg.css("left","");
});
}
sliderBtn.find(".prev").click(function(){
moveLeft();
});
sliderBtn.find(".next").click(function(){
moveRight();
});
sliderEffect07
이미지 슬라이드 효과- 버튼, 이미지버튼 만들기
const sliderWrap = $(".slider-wrap");
const sliderImg = $(".slider-img");
const slider = $(".slider");
const sliderBtn = $(".slider-btn");
const sliderDot = $(".slider-dot");
let sliderCount = slider.length;
let sliderWidth = slider.outerWidth();
let sliderHeight = slider.outerHeight();
let sliderTotalWidth = sliderWidth * sliderCount;
let currentIndex = 0;
let dotIndex = "";
//이미지 움직이기
sliderImg.css({width: sliderTotalWidth, height: sliderHeight});
function gotoSlider(index){
sliderImg.animate({left: -sliderWidth * index }, 400);
currentIndex = index //값이 누적이 되어 증가가된다.
sliderDot.find("a").removeClass("active").eq(currentIndex).addClass("active"); //버튼 누르면 닷버튼도 같이 바뀌기
}
//이미지 갯수만큼 닷 버튼 만들기
slider.each(function(index){
let sliderName = $(this).find("img").attr("alt");
let sliderSrc = $(this).find("img").attr("src");
dotIndex += ""+sliderName+""
});
sliderDot.html(dotIndex);
sliderDot.find("a").eq(0).addClass("active");
//닷 버튼 클릭하기
sliderDot.on("click","a",function(e){
e.preventDefault;
gotoSlider($(this).index());
});
// 버튼 클릭하기
sliderBtn.on("click","a",function(e){
e.preventDefault();
let nextIndex = (currentIndex + 1) % sliderCount; //이미지 수만큼만 넘어가게한다.
let prevIndex = (currentIndex - 1) % sliderCount;
if(currentIndex == 0) {
prevIndex = sliderCount -1;
}
if($(this).hasClass("prev")){
gotoSlider(prevIndex);
} else {
gotoSlider(nextIndex);
}
});
sample01
SliderEffect sample01
const n = 12;
gsap.timeline()
.set("#container", {perspective: 800})
for(let i=0; i<n; i++){
let b = document.createElement('div');
b.classList.add("box");
document.getElementById("container").appendChild(b);
gsap.set(b,{
left: '50%',
top: '50%',
x: '-50%',
y: '-50%',
z: 600,
width: 300,
height: 600,
borderRadius: 20,
background:()=>'hsl('+ (i/n*360)+', 100%, 50%)'
});
gsap.fromTo(b,{
scaleY:0,
zIndex:()=>(i<n/2)?-i:i,
rotationY: 90+i/n*206.5,
transformOrigin:String("50% 50% -1060%")
},{
scaleY: 1,
duration: 1,
delay: 1,
ease: 'elastic'
})
b.onmouseenter = (e) => {
gsap.to(b, {duration: 0.3, rotationX: -14, y:'-130%', ease:'back.out(6)'})
}
b.onmouseleave = (e) => {
gsap.to(b, {duration: 0.4, rotationX: 0, y:'-50%'})
}
}
window.onmousemove = (e) => {
gsap.to('.box', {duration: 0.6, rotationY: (i)=>45+i/n*206.5+90*(e.clientX/window.innerWidth) })