我发现这个非常酷的图片滑块插件(http://www.jqueryscript.net/slideshow/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider.html)。但我想将图像设置为背景图像。我只是不知道该怎么做。
任何人都可以帮助我吗?
/**
* Phoenix is a jQuery Slider that obtains new life by arising from the ashes of its predecessor
*/
(function ($) {
"use strict";
// No jQuery? No reborn.
if (!$) return;
var Phoenix = function () {
var _ = this;
this.setup = function (element, options) {
this.element = $(element);
this.options = options;
this.interval = null;
this.ashes = this.element.children("div");
this.total = this.ashes.length;
this._static = this.ashes.length == 1;
this.current = this.ashes.length - 1;
this.elevation = null;
this._defaults = {
delay: 10000,
speed: 400,
height: null,
fullscreen: true,
dots: true,
keys: true,
complete: function (index, currentElement, prevElement) {}
};
this.init();
};
this.init = function () {
// Store a reference to the original remove method.
var originalMethod = jQuery.fn.transition || jQuery.fn.animate;
// Define overriding method.
jQuery.fn.spitFire = function(){
// Execute the original method.
return originalMethod.apply( this, arguments );
}
this._defaults = $.extend(this._defaults, this.options);
var ash, pic;
$(window).on('resize', function () {
_.resize();
}).trigger('resize');
// Show Dots
this._defaults.dots && !_._static && this.dots();
// Custom keyboard support
this._defaults.keys && !_._static && $(document).keydown(this.keys);
this.ashes.each(function (index) {
ash = $(this);
pic = ash.children("img");
ash.css({
'background-image': 'url(' + pic.attr('src') + ')',
// 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + pic.attr('src') + "', sizingMethod='scale')",
// '-ms-filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + pic.attr('src') + "', sizingMethod='scale')",
});
if (index == 0) ash.css('z-index', 4);
pic.remove();
});
// Adding Touch Support with jQueryMobile
!_._static && $().swiperight && $().swipeleft && _.element.swipeleft(_.next) && _.element.swiperight(_.prev);
this.next();
!_._static && this.play();
};
this.resize = function () {
this.computeTallness();
this.element.css({
'height': (this._defaults.fullscreen === true ? $(window).height() : _.elevation) + 'px'
});
};
this.computeTallness = function() {
if (this._defaults.fullscreen === true) {
_.elevation = $(window).height();
} else {
if ((typeof _._defaults.height).toLowerCase() === 'string') {
if (_._defaults.height.slice(-1) === '%') {
_.elevation = $(window).height() * (_._defaults.height.substr(0, _._defaults.height.length - 1) / 100);
}
} else if ((typeof _._defaults.height).toLowerCase() === 'number') {
_.elevation = _._defaults.height;
} else {
_.elevation = _.element.height() == 0 ? $(window).height() : _.element.height();
}
}
};
this.dots = function () {
// Create the HTML
var html = '<div class="container-dots-wrapper"><div class="container-dots-inner"><ol class="dots">';
$.each(this.ashes, function (index) {
html += '<li class="dot' + (index < 1 ? ' active' : '') + '">' + (index + 1) + '</li>';
});
html += '</ol></div></div>';
// Add it to the Slider
this.element.append(html).find('.dot').click(function () {
_.move($(this).index(), true);
});
}
this.index = function () {
return _.current;
}
this.destroy = function () {
// Remove elements, unregister listeners, etc
// TODO
// Remove data
this.element.removeData();
};
this.play = function () {
_.interval = setInterval(function () {
_.next();
}, _._defaults.delay);
return _;
};
// Stop autoplay
this.stop = function () {
_.interval = clearInterval(_.interval);
return _;
};
// Keypresses
this.keys = function (e) {
var key = e.which;
var map = {
// Prev/next
37: _.prev,
39: _.next,
};
if ($.isFunction(map[key])) {
map[key](true);
}
};
// Arrow navigation
this.next = function (f) {
return _.move(_.current + 1, f);
};
this.prev = function (f) {
return _.move(_.current - 1, f);
};
this.move = function (index, f) {
if (index == _.current) return;
var newIndex, oldIndex,
oldIndex = _.current,
oldElement = this.ashes.eq(_.current),
newElement;
// If it's out of bounds, go to the first slide
if (!this.ashes.eq(index).length) index = 0;
if (index < 0) index = (this.ashes.length - 1);
_.current = index;
newIndex = _.current;
newElement = this.ashes.eq(newIndex);
newElement.css('opacity', 1);
if (_._static) return;
_.element.find('.dot:eq(' + index + ')').addClass('active').siblings().removeClass('active');
oldElement.spitFire({
'opacity': 0,
'duration': this._defaults.speed
}, function () {
oldElement.css('z-index', 'auto');
newElement.css('z-index', 4);
if (f) _.stop().play();
if (typeof (_._defaults.complete) === 'function') _._defaults.complete(newIndex, newElement, oldElement);
});
}
this.getRandomInt = function (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
};
// Create a jQuery plugin
return $.fn.phoenix = function (o) {
var len = this.length;
// Enable multiple-slider support
return $(this.each(function (index) {
// Cache a copy of $(this), so it
var me = $(this),
instance = (new Phoenix).setup(me, o);
// Invoke a Phoenix Slider instance
me.data('phoenix' + (len > 1 ? '-' + (index + 1) : ''), instance);
})).data('phoenix');
};
})(jQuery);
&#13;
.phoenix-slider {
overflow: hidden;
width: 100%;
height: 630px;
position: relative;
background: #f5f5f5;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
}
.phoenix-slider .phoenix-feather {
background: transparent none scroll no-repeat center top;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
position: absolute;
width: 100%;
height: 100%;
min-height: 100%;
overflow: hidden;
display: table;
width: 100%;
z-index: 2;
opacity: 0;
}
.phoenix-slider .reborn { z-index: 4; }
.phoenix-slider .phoenix-feather > img {
position: absolute;
width: 100%;
height: auto;
min-height: 100%;
overflow: hidden;
display: none;
}
.container-dots-wrapper {
position: absolute;
top: 0;
right: 10px;
height: 100%;
z-index: 9;
}
.container-dots-inner {
display: table;
height: 100%;
}
.dots {
display: table-cell;
vertical-align: middle;
list-style: none;
margin: 0;
padding: 0;
}
.dots li {
width: 10px;
height: 10px;
margin: 0 4px 7px 4px;
text-indent: -999em;
border: 2px solid #fff;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
cursor: pointer;
opacity: .5;
-webkit-transition: all 300ms ease-out;
-moz-transition: all 300ms ease-out;
-ms-transition: all 300ms ease-out;
-o-transition: all 300ms ease-out;
transition: all 300ms ease-out;
-webkit-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
-moz-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
-ms-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
-o-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
}
.dots li.active {
width: 11px;
height: 11px;
background: #fff;
border: 2px solid #fff;
left: 8px;
opacity: 1;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="phoenix-slider">
<div class="phoenix-feather">
<img src="img/1.jpg" alt="" />
</div>
<div class="phoenix-feather">
<img src="img/2.jpg" alt="" />
</div>
<div class="phoenix-feather">
<img src="img/3.jpg" alt="" />
</div>
<div class="phoenix-feather">
<img src="img/4.jpg" alt="" />
</div>
<div class="phoenix-feather">
<img src="img/5.jpg" alt="" />
</div>
<div class="phoenix-feather">
<img src="img/6.jpg" alt="" />
</div>
</div>
&#13;
答案 0 :(得分:1)
试试这个:
首先,您可以在jquery中添加此文件
$(document).ready(function(){
$('.phoenix-slider').phoenix({
fullscreen: true,
height: '85%'
});
});
/**
* Phoenix is a jQuery Slider that obtains new life by arising from the ashes of its predecessor
*/
(function ($) {
"use strict";
// No jQuery? No reborn.
if (!$) return;
var Phoenix = function () {
var _ = this;
this.setup = function (element, options) {
this.element = $(element);
this.options = options;
this.interval = null;
this.ashes = this.element.children("div");
this.total = this.ashes.length;
this._static = this.ashes.length == 1;
this.current = this.ashes.length - 1;
this.elevation = null;
this._defaults = {
delay: 10000,
speed: 400,
height: null,
fullscreen: true,
dots: true,
keys: true,
complete: function (index, currentElement, prevElement) {}
};
this.init();
};
this.init = function () {
// Store a reference to the original remove method.
var originalMethod = jQuery.fn.transition || jQuery.fn.animate;
// Define overriding method.
jQuery.fn.spitFire = function(){
// Execute the original method.
return originalMethod.apply( this, arguments );
}
this._defaults = $.extend(this._defaults, this.options);
var ash, pic;
$(window).on('resize', function () {
_.resize();
}).trigger('resize');
// Show Dots
this._defaults.dots && !_._static && this.dots();
// Custom keyboard support
this._defaults.keys && !_._static && $(document).keydown(this.keys);
this.ashes.each(function (index) {
ash = $(this);
pic = ash.children("img");
ash.css({
'background-image': 'url(' + pic.attr('src') + ')',
// 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + pic.attr('src') + "', sizingMethod='scale')",
// '-ms-filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + pic.attr('src') + "', sizingMethod='scale')",
});
if (index == 0) ash.css('z-index', 4);
pic.remove();
});
// Adding Touch Support with jQueryMobile
!_._static && $().swiperight && $().swipeleft && _.element.swipeleft(_.next) && _.element.swiperight(_.prev);
this.next();
!_._static && this.play();
};
this.resize = function () {
this.computeTallness();
this.element.css({
'height': (this._defaults.fullscreen === true ? $(window).height() : _.elevation) + 'px'
});
};
this.computeTallness = function() {
if (this._defaults.fullscreen === true) {
_.elevation = $(window).height();
} else {
if ((typeof _._defaults.height).toLowerCase() === 'string') {
if (_._defaults.height.slice(-1) === '%') {
_.elevation = $(window).height() * (_._defaults.height.substr(0, _._defaults.height.length - 1) / 100);
}
} else if ((typeof _._defaults.height).toLowerCase() === 'number') {
_.elevation = _._defaults.height;
} else {
_.elevation = _.element.height() == 0 ? $(window).height() : _.element.height();
}
}
};
this.dots = function () {
// Create the HTML
var html = '<div class="container-dots-wrapper"><div class="container-dots-inner"><ol class="dots">';
$.each(this.ashes, function (index) {
html += '<li class="dot' + (index < 1 ? ' active' : '') + '">' + (index + 1) + '</li>';
});
html += '</ol></div></div>';
// Add it to the Slider
this.element.append(html).find('.dot').click(function () {
_.move($(this).index(), true);
});
}
this.index = function () {
return _.current;
}
this.destroy = function () {
// Remove elements, unregister listeners, etc
// TODO
// Remove data
this.element.removeData();
};
this.play = function () {
_.interval = setInterval(function () {
_.next();
}, _._defaults.delay);
return _;
};
// Stop autoplay
this.stop = function () {
_.interval = clearInterval(_.interval);
return _;
};
// Keypresses
this.keys = function (e) {
var key = e.which;
var map = {
// Prev/next
37: _.prev,
39: _.next,
};
if ($.isFunction(map[key])) {
map[key](true);
}
};
// Arrow navigation
this.next = function (f) {
return _.move(_.current + 1, f);
};
this.prev = function (f) {
return _.move(_.current - 1, f);
};
this.move = function (index, f) {
if (index == _.current) return;
var newIndex, oldIndex,
oldIndex = _.current,
oldElement = this.ashes.eq(_.current),
newElement;
// If it's out of bounds, go to the first slide
if (!this.ashes.eq(index).length) index = 0;
if (index < 0) index = (this.ashes.length - 1);
_.current = index;
newIndex = _.current;
newElement = this.ashes.eq(newIndex);
newElement.css('opacity', 1);
if (_._static) return;
_.element.find('.dot:eq(' + index + ')').addClass('active').siblings().removeClass('active');
oldElement.spitFire({
'opacity': 0,
'duration': this._defaults.speed
}, function () {
oldElement.css('z-index', 'auto');
newElement.css('z-index', 4);
if (f) _.stop().play();
if (typeof (_._defaults.complete) === 'function') _._defaults.complete(newIndex, newElement, oldElement);
});
}
this.getRandomInt = function (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
};
// Create a jQuery plugin
return $.fn.phoenix = function (o) {
var len = this.length;
// Enable multiple-slider support
return $(this.each(function (index) {
// Cache a copy of $(this), so it
var me = $(this),
instance = (new Phoenix).setup(me, o);
// Invoke a Phoenix Slider instance
me.data('phoenix' + (len > 1 ? '-' + (index + 1) : ''), instance);
})).data('phoenix');
};
})(jQuery);
&#13;
.phoenix-slider {
overflow: hidden;
width: 100%;
height: 630px;
position: relative;
background: #f5f5f5;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
}
.phoenix-slider .phoenix-feather {
background: transparent none scroll no-repeat center top;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
position: absolute;
width: 100%;
height: 100%;
min-height: 100%;
overflow: hidden;
display: table;
width: 100%;
z-index: 2;
opacity: 0;
}
.phoenix-slider .reborn { z-index: 4; }
.phoenix-slider .phoenix-feather > img {
position: absolute;
width: 100%;
height: auto;
min-height: 100%;
overflow: hidden;
display: none;
}
.container-dots-wrapper {
position: absolute;
top: 0;
right: 10px;
height: 100%;
z-index: 9;
}
.container-dots-inner {
display: table;
height: 100%;
}
.dots {
display: table-cell;
vertical-align: middle;
list-style: none;
margin: 0;
padding: 0;
}
.dots li {
width: 10px;
height: 10px;
margin: 0 4px 7px 4px;
text-indent: -999em;
border: 2px solid #fff;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
cursor: pointer;
opacity: .5;
-webkit-transition: all 300ms ease-out;
-moz-transition: all 300ms ease-out;
-ms-transition: all 300ms ease-out;
-o-transition: all 300ms ease-out;
transition: all 300ms ease-out;
-webkit-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
-moz-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
-ms-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
-o-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
}
.dots li.active {
width: 11px;
height: 11px;
background: #fff;
border: 2px solid #fff;
left: 8px;
opacity: 1;
}
&#13;
<link href="http://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.1/normalize.css" rel="stylesheet" type="text/css">
<div class="phoenix-slider">
<div class="phoenix-feather">
<img src="http://www.jqueryscript.net/demo/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider/img/1.jpg" alt="" />
</div>
<!-- END ash -->
<div class="phoenix-feather">
<img src="http://www.jqueryscript.net/demo/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider/img/2.jpg" alt="" />
</div>
<!-- END ash -->
<div class="phoenix-feather">
<img src="http://www.jqueryscript.net/demo/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider/img/3.jpg" alt="" />
</div>
<!-- END ash -->
<div class="phoenix-feather">
<img src="http://www.jqueryscript.net/demo/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider/img/4.jpg" alt="" />
</div>
<!-- END ash -->
<div class="phoenix-feather">
<img src="http://www.jqueryscript.net/demo/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider/img/5.jpg" alt="" />
</div>
<!-- END ash -->
<div class="phoenix-feather">
<img src="http://www.jqueryscript.net/demo/Fullscreen-Responsive-Image-Slideshow-with-jQuery-Phoenix-Slider/img/6.jpg" alt="" />
</div>
<!-- END ash -->
</div>
<!-- END phoenix-slider -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;