当前位置:首页 > JavaScript

js实现对联

2026-01-31 23:04:59JavaScript

使用JavaScript实现对联效果

实现网页对联广告或装饰效果的核心思路是通过CSS定位和JavaScript动态调整元素位置。以下是具体实现方法:

基础HTML结构

<div class="couplet left">上联内容</div>
<div class="couplet right">下联内容</div>

CSS样式设置

.couplet {
  position: fixed;
  top: 50%;
  width: 100px;
  padding: 10px;
  background-color: #c00;
  color: gold;
  font-size: 20px;
  text-align: center;
  transform: translateY(-50%);
  z-index: 9999;
}
.left {
  left: 0;
}
.right {
  right: 0;
}

JavaScript动态调整

window.addEventListener('scroll', function() {
  const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  const couplets = document.querySelectorAll('.couplet');

  couplets.forEach(couplet => {
    couplet.style.top = 50 + scrollTop * 0.1 + '%';
  });
});

高级实现方案

响应式处理

function initCouplet() {
  const windowHeight = window.innerHeight;
  const coupletHeight = 200; // 对联元素高度

  document.querySelectorAll('.couplet').forEach(couplet => {
    couplet.style.top = Math.max(0, (windowHeight - coupletHeight) / 2) + 'px';
  });
}

window.addEventListener('resize', initCouplet);
initCouplet();

动画效果增强

.couplet {
  transition: top 0.3s ease-out;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  border-radius: 5px;
}

关闭功能实现

document.querySelectorAll('.couplet').forEach(couplet => {
  const closeBtn = document.createElement('span');
  closeBtn.innerHTML = '×';
  closeBtn.style.position = 'absolute';
  closeBtn.style.right = '5px';
  closeBtn.style.top = '5px';
  closeBtn.style.cursor = 'pointer';

  closeBtn.addEventListener('click', function() {
    couplet.style.display = 'none';
  });

  couplet.appendChild(closeBtn);
});

注意事项

  • 对联元素应使用position: fixed确保始终可见
  • z-index值要设置足够高避免被其他元素覆盖
  • 移动端需要考虑视口宽度,可能需要调整样式
  • 内容更新可以通过JavaScript动态修改元素innerHTML

这种实现方式兼容主流浏览器,可以通过修改CSS自定义样式风格,JavaScript部分控制交互行为和位置调整。

js实现对联

标签: 对联js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('imag…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Ja…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取…