在 Slick Carousel 上添加自定义按钮
Add custom buttons on Slick Carousel
如何将自定义上一个和下一个按钮应用到光滑的轮播?我已经在 .slick-prev
和 .slick-next
css class 上尝试了背景图片。我也尝试根据文档添加一个新的 class 但箭头完全消失了:
<script type="text/javascript">
$('.big-image').slick({
dots: false,
infinite: true,
speed: 300,
slidesToShow: 1,
centerMode: true,
variableWidth: true,
nextArrow: '.next_caro',
prevArrow: '.previous_caro'
});
</script>
如有指点,将不胜感激。
为什么你不能使用默认 CSS 类 并添加一些你的风格?
.slick-next {
/*my style*/
background: url(my-image.png);
}
和
.slick-prev {
/*my style*/
background: url(my-image.png);
}
你用的是简单的背景css属性吗?
例如:
http://jsfiddle.net/BNvke/1/
您也可以使用 Font Awesome。不要忘记 CSS 伪元素。
还有别忘了jQuery,你可以替换元素,添加类等
那是因为他们为按钮使用了 图标字体 。他们使用 "Slick" 字体,如图所示:
基本上,使字母 "A" 成为图标的形式,字母 "B" 成为另一个图标的形式,依此类推。
例如:
如果你想了解更多关于图标字体的知识click here
如果你想改变图标,你需要替换整个按钮代码,或者你可以去www.fontastic.me创建你自己的图标字体。之后,将字体文件替换为当前字体文件,您将拥有自己的图标。
我知道这是一个老问题,但也许我可以对某人有所帮助,因为这也难倒了我,直到我更多地阅读了文档:
prevArrow string (html|jQuery selector) | object (DOM node|jQuery
object) Previous
Allows you to select a node or customize the HTML for the "Previous"
arrow.
nextArrow string (html|jQuery selector) | object (DOM node|jQuery
object) Next Allows
you to select a node or customize the HTML for the "Next" arrow.
这就是我更改按钮的方式..效果很好。
$('.carousel-content').slick({
prevArrow:"<img class='a-left control-c prev slick-prev' src='../images/shoe_story/arrow-left.png'>",
nextArrow:"<img class='a-right control-c next slick-next' src='../images/shoe_story/arrow-right.png'>"
});
如果您使用的是 Bootstrap 3,则可以使用 Glyphicons。
.slick-prev:before, .slick-next:before {
font-family: "Glyphicons Halflings", "slick", sans-serif;
font-size: 40px;
}
.slick-prev:before { content: "\e257"; }
.slick-next:before { content: "\e258"; }
如果你想使用来自任何图标字体库的图标,你可以在你的js文件中调用滑块时在选项中尝试这个。
prevArrow: '<div class="class-to-style"><span class="fa fa-angle-left"></span><span class="sr-only">Prev</span></div>',
nextArrow: '<div class="class-to-style"><span class="fa fa-angle-right"></span><span class="sr-only">Next</span></div>'
此处"fa"来自FontAwesome图标字体库
如果你使用sass你可以简单地设置下面提到的变量来使用其他字体提供的图标,
$slick-font-family:FontAwesome;
$slick-prev-character: "\f053";
$slick-next-character: "\f054";
这些将更改 slick 的主题使用的字体系列 css 以及上一个和下一个按钮的 unicode。此示例将使用 FontAwesome 的 chevron-left 和 chevron-right 图标。
其他sass个可以配置的变量在Slick Github page
中给出
@tallgirltaadaa 的答案的变体,以插入符号的形状绘制您自己的按钮:
var a = $('.MyCarouselContainer').slick({
prevArrow: '<canvas class="prevArrowCanvas a-left control-c prev slick-prev" width="15" height="50"></canvas>',
nextArrow: '<canvas class="nextArrowCanvas a-right control-c next slick-next" width="15" height="50"></canvas>'
});
function drawNextPreviousArrows(strokeColor) {
var c = $(".prevArrowCanvas")[0];
var ctx = c.getContext("2d");
ctx.clearRect(0, 0, c.width, c.height);
ctx.moveTo(15, 0);
ctx.lineTo(0, 25);
ctx.lineTo(15, 50);
ctx.lineWidth = 2;
ctx.strokeStyle = strokeColor;
ctx.stroke();
var c = $(".nextArrowCanvas")[0];
var ctx = c.getContext("2d");
ctx.clearRect(0, 0, c.width, c.height);
ctx.moveTo(0, 0);
ctx.lineTo(15, 25);
ctx.lineTo(0, 50);
ctx.lineWidth = 2;
ctx.strokeStyle = strokeColor;
ctx.stroke();
}
drawNextPreviousArrows("#cccccc");
然后添加 css
.slick-prev, .slick-next
height: 50px;s
}
非常简单。使用下面的代码,它对我有用。这里我使用了 fontawesome 图标,但你可以使用任何东西作为图像或任何其他图标的代码。
$(document).ready(function(){
$('.slider').slick({
autoplay:true,
arrows: true,
prevArrow:"<button type='button' class='slick-prev pull-left'><i class='fa fa-angle-left' aria-hidden='true'></i></button>",
nextArrow:"<button type='button' class='slick-next pull-right'><i class='fa fa-angle-right' aria-hidden='true'></i></button>"
});
});
prevArrow/nextArrow
Type: string (html|jQuery selector) | object (DOM node|jQuery object)
一些示例代码
$(document).ready(function(){
$('.slick-carousel-1').slick({
// @type {string} html
nextArrow: '<button class="any-class-name-you-want-next">Next</button>',
prevArrow: '<button class="any-class-name-you-want-previous">Previous</button>'
});
$('.slick-carousel-2').slick({
// @type {string} jQuery Selector
nextArrow: '.next',
prevArrow: '.previous'
});
$('.slick-carousel-3').slick({
// @type {object} DOM node
nextArrow: document.getElementById('slick-next'),
prevArrow: document.getElementById('slick-previous')
});
$('.slick-carousel-4').slick({
// @type {object} jQuery Object
nextArrow: $('.example-4 .next'),
prevArrow: $('.example-4 .previous')
});
});
造型小记
一旦 Slick 知道了您的新按钮,您就可以根据自己的喜好设计它们;查看上面的示例,您可以根据 class
名称、id
名称甚至 element
.
来定位它们
当很多其他项目没有时,这对我有用:
.slick-prev:before {
content: url('your-arrow.png');
}
.slick-next:before {
content: url('your-arrow.png');
}
$('.slider').slick({
slidesToShow: 3,
slidesToScroll: 1,
speed: 500,
dots: true,
arrows: true,
centerMode: false,
focusOnSelect: false,
autoplay: false,
autoplaySpeed: 2000,
slide: 'div',
nextArrow: '<button id="next">Next >',
prevArrow: '<button id="previous">previous >',
});
结果:
如何将自定义上一个和下一个按钮应用到光滑的轮播?我已经在 .slick-prev
和 .slick-next
css class 上尝试了背景图片。我也尝试根据文档添加一个新的 class 但箭头完全消失了:
<script type="text/javascript">
$('.big-image').slick({
dots: false,
infinite: true,
speed: 300,
slidesToShow: 1,
centerMode: true,
variableWidth: true,
nextArrow: '.next_caro',
prevArrow: '.previous_caro'
});
</script>
如有指点,将不胜感激。
为什么你不能使用默认 CSS 类 并添加一些你的风格?
.slick-next {
/*my style*/
background: url(my-image.png);
}
和
.slick-prev {
/*my style*/
background: url(my-image.png);
}
你用的是简单的背景css属性吗?
例如: http://jsfiddle.net/BNvke/1/
您也可以使用 Font Awesome。不要忘记 CSS 伪元素。
还有别忘了jQuery,你可以替换元素,添加类等
那是因为他们为按钮使用了 图标字体 。他们使用 "Slick" 字体,如图所示:
基本上,使字母 "A" 成为图标的形式,字母 "B" 成为另一个图标的形式,依此类推。
例如:
如果你想了解更多关于图标字体的知识click here
如果你想改变图标,你需要替换整个按钮代码,或者你可以去www.fontastic.me创建你自己的图标字体。之后,将字体文件替换为当前字体文件,您将拥有自己的图标。
我知道这是一个老问题,但也许我可以对某人有所帮助,因为这也难倒了我,直到我更多地阅读了文档:
prevArrow string (html|jQuery selector) | object (DOM node|jQuery object) Previous Allows you to select a node or customize the HTML for the "Previous" arrow.
nextArrow string (html|jQuery selector) | object (DOM node|jQuery object) Next Allows you to select a node or customize the HTML for the "Next" arrow.
这就是我更改按钮的方式..效果很好。
$('.carousel-content').slick({
prevArrow:"<img class='a-left control-c prev slick-prev' src='../images/shoe_story/arrow-left.png'>",
nextArrow:"<img class='a-right control-c next slick-next' src='../images/shoe_story/arrow-right.png'>"
});
如果您使用的是 Bootstrap 3,则可以使用 Glyphicons。
.slick-prev:before, .slick-next:before {
font-family: "Glyphicons Halflings", "slick", sans-serif;
font-size: 40px;
}
.slick-prev:before { content: "\e257"; }
.slick-next:before { content: "\e258"; }
如果你想使用来自任何图标字体库的图标,你可以在你的js文件中调用滑块时在选项中尝试这个。
prevArrow: '<div class="class-to-style"><span class="fa fa-angle-left"></span><span class="sr-only">Prev</span></div>',
nextArrow: '<div class="class-to-style"><span class="fa fa-angle-right"></span><span class="sr-only">Next</span></div>'
此处"fa"来自FontAwesome图标字体库
如果你使用sass你可以简单地设置下面提到的变量来使用其他字体提供的图标,
$slick-font-family:FontAwesome;
$slick-prev-character: "\f053";
$slick-next-character: "\f054";
这些将更改 slick 的主题使用的字体系列 css 以及上一个和下一个按钮的 unicode。此示例将使用 FontAwesome 的 chevron-left 和 chevron-right 图标。
其他sass个可以配置的变量在Slick Github page
中给出@tallgirltaadaa 的答案的变体,以插入符号的形状绘制您自己的按钮:
var a = $('.MyCarouselContainer').slick({
prevArrow: '<canvas class="prevArrowCanvas a-left control-c prev slick-prev" width="15" height="50"></canvas>',
nextArrow: '<canvas class="nextArrowCanvas a-right control-c next slick-next" width="15" height="50"></canvas>'
});
function drawNextPreviousArrows(strokeColor) {
var c = $(".prevArrowCanvas")[0];
var ctx = c.getContext("2d");
ctx.clearRect(0, 0, c.width, c.height);
ctx.moveTo(15, 0);
ctx.lineTo(0, 25);
ctx.lineTo(15, 50);
ctx.lineWidth = 2;
ctx.strokeStyle = strokeColor;
ctx.stroke();
var c = $(".nextArrowCanvas")[0];
var ctx = c.getContext("2d");
ctx.clearRect(0, 0, c.width, c.height);
ctx.moveTo(0, 0);
ctx.lineTo(15, 25);
ctx.lineTo(0, 50);
ctx.lineWidth = 2;
ctx.strokeStyle = strokeColor;
ctx.stroke();
}
drawNextPreviousArrows("#cccccc");
然后添加 css
.slick-prev, .slick-next
height: 50px;s
}
非常简单。使用下面的代码,它对我有用。这里我使用了 fontawesome 图标,但你可以使用任何东西作为图像或任何其他图标的代码。
$(document).ready(function(){
$('.slider').slick({
autoplay:true,
arrows: true,
prevArrow:"<button type='button' class='slick-prev pull-left'><i class='fa fa-angle-left' aria-hidden='true'></i></button>",
nextArrow:"<button type='button' class='slick-next pull-right'><i class='fa fa-angle-right' aria-hidden='true'></i></button>"
});
});
prevArrow/nextArrow
Type:
string (html|jQuery selector) | object (DOM node|jQuery object)
一些示例代码
$(document).ready(function(){
$('.slick-carousel-1').slick({
// @type {string} html
nextArrow: '<button class="any-class-name-you-want-next">Next</button>',
prevArrow: '<button class="any-class-name-you-want-previous">Previous</button>'
});
$('.slick-carousel-2').slick({
// @type {string} jQuery Selector
nextArrow: '.next',
prevArrow: '.previous'
});
$('.slick-carousel-3').slick({
// @type {object} DOM node
nextArrow: document.getElementById('slick-next'),
prevArrow: document.getElementById('slick-previous')
});
$('.slick-carousel-4').slick({
// @type {object} jQuery Object
nextArrow: $('.example-4 .next'),
prevArrow: $('.example-4 .previous')
});
});
造型小记
一旦 Slick 知道了您的新按钮,您就可以根据自己的喜好设计它们;查看上面的示例,您可以根据 class
名称、id
名称甚至 element
.
当很多其他项目没有时,这对我有用:
.slick-prev:before {
content: url('your-arrow.png');
}
.slick-next:before {
content: url('your-arrow.png');
}
$('.slider').slick({
slidesToShow: 3,
slidesToScroll: 1,
speed: 500,
dots: true,
arrows: true,
centerMode: false,
focusOnSelect: false,
autoplay: false,
autoplaySpeed: 2000,
slide: 'div',
nextArrow: '<button id="next">Next >',
prevArrow: '<button id="previous">previous >',
});
结果: