div隐藏后,另一个div宽度到达100%

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
  *{
  margin:0;
  padding:0;
  }
  div{
  border:solid 1px red;
  padding:100px;
  float:left;
  }
</style>
<script type="text/javascript">
  function change(){
    document.getElementById('left').style.display='none';
 document.getElementById('right').style.width='100%';
  }
</script>
</head>
<body>
<div id="left"><a href="####" οnclick="change()">点击</a></div>
<div id="right">ddfdfdfddfdfd</div>
</body>
</html>
### 创建可循环的自定义拖拽轮播组件 为了构建一个能够手动拖拽并自动循环播放的轮播图,可以利用JavaScript的强大DOM操作能力和HTML结构化布局来完成此任务。以下是具体实现方式: #### HTML 结构 首先,在HTML文件中定义基本框架,包括容器和用于显示图片的元素。 ```html <div id="carousel-container"> <div class="slide-track"></div> </div> ``` 这里`#carousel-container`是整个轮播图的大盒子,而`.slide-track`则是用来放置每一张幻灯片的小轨道。 #### CSS 样式 接着为上述标记添加必要的CSS样式以确保视觉效果良好,并允许水平滚动行为发生。 ```css #carousel-container { width: 80%; overflow-x: hidden; } .slide-track { display: flex; transition: transform 0.3s ease-in-out; } ``` 这段代码设置了轮播区域宽度,并隐藏超出部分的内容;同时给滑动条赋予弹性盒模型特性以便于内部项排列成行,并开启平滑过渡动画。 #### JavaScript 功能逻辑 最后编写核心脚本控制实际运作流程,这涉及到事件监听器注册、计算偏移量以及定时触发下一页等功能。 ```javascript const slideTrack = document.querySelector('.slide-track'); let currentIndex = 0; // 假设我们有五张图片作为初始数据源 const images = [ 'image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg', 'image5.jpg' ]; function renderSlides() { const slidesMarkup = images.map((imgSrc) => `<img src="${imgSrc}" alt="" />`).join(''); slideTrack.innerHTML += slidesMarkup; // 插入一次完整的副本 slideTrack.innerHTML += slidesMarkup; // 再次插入一份副本以形成无缝衔接的效果 } renderSlides(); document.addEventListener('DOMContentLoaded', () => { let startX, moveX; function handleTouchStart(event) { startX = event.touches[0].clientX; } function handleTouchMove(event) { moveX = event.touches[0].clientX - startX; } function handleTouchEnd() { if (moveX > 50 || Math.abs(moveX) === 0 && currentIndex !== 0) { // 向右划超过一定距离则回退至上一帧 currentIndex--; } else if (moveX < -50 || Math.abs(moveX) === 0 && currentIndex !== images.length - 1) { // 向左划超过一定距离前进下一帧 currentIndex++; } updateSlidePosition(); } function updateSlidePosition() { const offsetWidth = slideTrack.offsetWidth / 2; slideTrack.style.transform = `translateX(-${currentIndex * offsetWidth}px)` ; // 当到达最后一张时重置索引回到起始位置 if(currentIndex >= images.length){ setTimeout(() => { currentIndex = 0; slideTrack.style.transition = "none"; slideTrack.style.transform = `translateX(0px)`; }, 300); } } slideTrack.addEventListener('touchstart', handleTouchStart); slideTrack.addEventListener('touchmove', handleTouchMove); slideTrack.addEventListener('touchend', handleTouchEnd); setInterval(() => { currentIndex++; updateSlidePosition(); }, 3000); // 自动切换时间间隔设定为三秒 }); ``` 以上代码实现了基于触摸手势识别机制下的页面间转换功能[^1],并通过设置计时器达到自动化翻页的目的。当用户向任意方向轻扫屏幕时,程序会检测手指移动的距离从而决定是否跳转至相邻视窗;与此同时每隔固定周期也会自动推进当前展示位直到遍历完所有可用资源为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值