slick 이미지 슬라이드 사용하기
18085 단어 JavaScriptHTMLRubyRailsCSS
외관은 아래와 같다!
일단 보기!
slick.html.haml
.main-content.clearfix
.main-content__photo
.owl-carousel.owl-loaded.owl-drag
.owl-stage-outer
.owl-stage{ style: 'left:0px',width: '900px'}
- @item.images.each do |i|
- if i.image.present?
.owl-item{ style: 'width:300px'}
.owl-item__inner.is-higher-width
= image_tag i.image
.owl-dots
- if @item.images.present?
- @item.images.each do |i|
.owl-dot
.owl-dot-inner
= image_tag i.image
이미지는 다른 테이블에 저장되어 있기 때문에 관련성을 잊지 마세요.slick.scss
main-content {
margin: 16px 0 0;
@include clearfix;
&__photo {
float: left;
min-width: 300px;
max-width: 300px;
min-height: 375px;
position: relative;
margin: 0 auto;
background-color: #fafafa;
.owl-carousel {
position: relative;
.owl-stage-outer {
position: relative;
overflow: hidden;
.owl-stage {
position: relative;
.owl-item {
min-height: 1px;
float:left;
&__inner {
position: relative;
width: 100%;
height: 0;
padding: 0 0 100%;
.owl-lazy {
transition: opacity 400ms;
}
img {
position: absolute;
top: 0;
left:0;
bottom: 0;
right: 0;
width: 100%;
margin: auto;
max-height: 300px;
}
}
}
}
}
.owl-dots {
line-height: 0;
font-size: 0;
.owl-dot {
position: relative;
overflow: hidden;
display: inline-block;
width: 75px;
height: 75px;
opacity: 0.4;
cursor: pointer;
.owl-dot-inner {
overflow: hidden;
position: static;
width: auto;
height: 100%;
padding: 0;
pointer-events: none;
img {
height: 100%;
width: 100%;
vertical-align: bottom;
}
}
}
}
}
}
}
이렇게 하면 사진처럼 볼 수 있어!이제 슬릭을 도입합니다!
slick 사이트에서 CDN을 복사해서 헤드에 붙여넣으면 됩니다!
layouts/application.html.haml
%link{rel: "stylesheet", type:"text/css", href: "//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css"}
%script{type: "text/javascript", src: "//cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js"}
만약 움직이지 않는다면 다음은 slick 공식 사이트입니다. 참고하세요!마지막으로 JS의 기술!
초상화 5장 이상의 경우,width,height가 5열로 변경됩니다!
slick.js
$(document).on('turbolinks:load', function() {
//始めにactionを追加
$('.owl-dots .owl-dot:first-child').addClass('active');
$('.owl-dots .owl-dot:first-child').css({'opacity':'1','pointer':'default'});
//hover時に色変更&activeクラス追加
$('.owl-dot').hover(function(){
$('.active').css({'opacity':'','pointer':''})
$('.active').removeClass('active');
$(this).addClass('active');
$(this).css({'opacity':'1','pointer':'default'});
});
//スライド
$('.owl-stage').slick({
autoplay: false,
Speed: 3000,
arrows: false,
dots: false,
dotsClass: 'owl-dots',
pauseOnDotsHover: true,
infinite: true,
});
$('.owl-dot').on('mouseover', function(e){
var $currTarget = $(e.currentTarget);
index = $('.owl-dot').index(this);
slickObj = $('.owl-stage').slick('getSlick');
slickObj.slickGoTo(index); // アニメーション中でも切り替える
});
//画像が4枚よりも多い場合
if($('.owl-dot').length > 4) {
$('.owl-dot').css({'width':'60px','height':'60px'});
}
});
이런 식으로 기술하면 잘 움직일 거야!쓸데없는 설명이 있을지도 몰라요. 조언해 주시면 기쁠 거예요!
그리고 누구의 참고가 될 수 있다면 다행이다!
Reference
이 문제에 관하여(slick 이미지 슬라이드 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tsurutadesu/items/77cebed4b9fd1f93705a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)