bootstrap、jQuery动态控制轮播图

在使用bootstrap框架开发网页轮播图的时候,会出现图片之间出现间隙或者当屏幕转为小屏幕或者超小屏幕的时候,轮播的图片并不能很好的适应。下面就使用动态控制轮播的方法解决这些问题。

首先引入bootstrap框架并对轮播图carousel的代码做相关的定制。

index.html

<section id="lk_carousel" class="carousel slide" data-ride="carousel" data-interval=2000>
			<!-- Indicators -->
			<ol class="carousel-indicators">
				<li data-target="#lk_carousel" data-slide-to="0" class="active"></li>
				<li data-target="#lk_carousel" data-slide-to="1"></li>
				<li data-target="#lk_carousel" data-slide-to="2"></li>
			</ol>

			<!-- Wrapper for slides -->
			<div class="carousel-inner" role="listbox">
				<div class="item active" data-sm-img="imgs/slide_01_640x340.jpg" data-lg-img="imgs/slide_01_2000x410.jpg">
				</div>
				<div class="item" data-sm-img="imgs/slide_02_640x340.jpg" data-lg-img="imgs/slide_02_2000x410.jpg">
				</div>
				<div class="item" data-sm-img="imgs/slide_03_640x340.jpg" data-lg-img="imgs/slide_03_2000x410.jpg">
				</div>
			</div>

			<!-- Controls -->
			<a class="left carousel-control" href="#lk_carousel" role="button" data-slide="prev">
				<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
				<span class="sr-only">Previous</span>
			</a>
			<a class="right carousel-control" href="#lk_carousel" role="button" data-slide="next">
				<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
				<span class="sr-only">Next</span>
			</a>
		</section>

index.css

#lk_carousel{
	margin-top: 111px;
}

#lk_carousel .item{
	background: no-repeat center center;
	-webkit-background-size: cover;
	background-size: cover;
}

@media screen and (min-width:800px){
	#lk_carousel .item{
		height: 410px;
	}
} 

index.js

$(function(){
	$(window).on("resize",function(){
		// 1.1 获取窗口的宽度
		let clientW = $(window).width();
		// 1.2设置临界值
		let isShowBigImage = clientW >= 800;
		// 1.3获取所有的item
		let $allItem = $("#lk_carousel .item");
		// 1.4遍历
		$allItem.each(function(index,item){
			// 1.4.1取出图片的路径
			let src = isShowBigImage ? $(item).data("lg-img") : $(item).data("sm-img");
			let imgUrl = 'url("' + src + '")';
			// 1.4.2设置背景
			$(item).css({
				backgroundImage:imgUrl
			});
			// 1.4.3设置img标签
			if(!isShowBigImage){
				// 当屏幕宽度小于800px时 则显示640x340像素图片
				let $img = "<img src='" + src + "'>";
				$(item).empty().append($img);
			}else{
				// 当屏幕宽度大于800px时,则显示2000x410像素图片,移除640x340像素图片
				$(item).empty()
			}
		});
	});
	$(window).trigger("resize");
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的轮播图的HTML代码,使用了BootstrapCarousel组件: ```html <div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <img src="https://via.placeholder.com/800x400?text=Slide+1" class="d-block w-100" alt="Slide 1"> </div> <div class="carousel-item"> <img src="https://via.placeholder.com/800x400?text=Slide+2" class="d-block w-100" alt="Slide 2"> </div> <div class="carousel-item"> <img src="https://via.placeholder.com/800x400?text=Slide+3" class="d-block w-100" alt="Slide 3"> </div> </div> </div> ``` 这个轮播图包括三张幻灯片,每张幻灯片都是一个`carousel-item`,包含一张图片和一个标题。第一张幻灯片默认为`active`状态,表示默认显示。 你还需要在页面中包含以下Bootstrap CSS和JS文件,以便轮播图正常工作: ```html <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <!-- Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js" integrity="sha384-ILQkOW5q4Q7v7H4C2yJW0XJ2g8C4l9M8+UGt3x3hIZvHcV3J7h9/2h7e+8i8yLNT" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> ``` 这个轮播图的效果可以在以下链接中查看: https://codepen.io/lyndonliu/pen/ZEyJyYJ

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值