js图片滚动无缝衔接

js图片滚动无缝衔接

<style>
		*{
			margin:0;
			padding:0;
		}
		div{
			width:600px;
			height:200px;
			position:relative;
			border:1px solid red;
			margin:100px;
			overflow:hidden;
		}
		ul{
			width:600%;
			position:absolute;
			left:0;
		}
		li{
			float:left;
			list-style:none;
		}
	</style>
	<body>
		<div id="box">
			<ul id="u">
				<li><img src="a.jpg" alt="" /></li>
				<li><img src="b.jpg" alt="" /></li>
				<li><img src="c.jpg" alt="" /></li>
				<li><img src="d.jpg" alt="" /></li>
				<li><img src="a.jpg" alt="" /></li>
				<li><img src="b.jpg" alt="" /></li>
			</ul>
		</div>
	</body>
</html>
<script>
	var num = 0; // 默认ul位置
	var oUl = document.getElementById("u");
	var box = document.getElementById("box");

	function autoPlay(){
		oUl.style.left=num+"px";
		num-=2;
		if(num<=-1200){
			num=0
		}
	}
	var timer=setInterval(autoPlay,100);
	box.onmouseover=function(){
		clearInterval(timer);
	}
	box.onmouseout=function(){
		timer=setInterval(autoPlay,100);
	}
</script>
要实现图片的垂直滚动无缝衔接,可以使用Java Swing中的JLabel和Timer类。具体实现步骤如下: 1. 将图片加载到JLabel中,使用JScrollPane来实现滚动效果。 2. 创建一个Timer对象,每隔一定时间就将JLabel向上移动一个固定距离。 3. 当JLabel的底部移出可视区域时,将其移动到JScrollPane的最下方,保证图片无缝衔接。 下面是实现代码的示例: ```java import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ImageVerticalScroll extends JFrame implements ActionListener { private JLabel imageLabel; private Timer timer; private JScrollPane scrollPane; private int moveDistance = 1; // 每次移动的距离 public ImageVerticalScroll() { setTitle("Image Vertical Scroll"); // 加载图片到JLabel中 ImageIcon image = new ImageIcon("image.png"); imageLabel = new JLabel(image); // 将JLabel添加到JScrollPane中 scrollPane = new JScrollPane(imageLabel); getContentPane().add(scrollPane); // 创建Timer对象 timer = new Timer(50, this); // 50ms移动一次 // 设置窗口属性 setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); // 启动Timer timer.start(); } @Override public void actionPerformed(ActionEvent e) { // 获取JScrollPane的垂直滚动JScrollBar scrollBar = scrollPane.getVerticalScrollBar(); // 计算JLabel需要移动的距离 int newY = imageLabel.getY() - moveDistance; // 判断JLabel是否移出了可视区域 if (newY + imageLabel.getHeight() < scrollPane.getHeight()) { // 移动到最下方,保证无缝衔接 newY = scrollPane.getHeight() - imageLabel.getHeight(); } // 设置JLabel的新位置 imageLabel.setLocation(imageLabel.getX(), newY); // 重新绘制JScrollPane scrollPane.repaint(); } public static void main(String[] args) { new ImageVerticalScroll(); } } ``` 注意:为了保证图片无缝衔接,需要确保图片的高度大于JScrollPane的高度。如果图片太小,可以将其复制多次来实现无缝滚动的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值