当前位置:首页 > JavaScript

js实现对联

2026-04-05 15:23:30JavaScript

实现对联效果(JavaScript)

方法一:使用绝对定位与动态生成

通过JavaScript动态生成对联元素并设置绝对定位,使其固定在页面两侧。

// 创建对联元素
const leftCouplet = document.createElement('div');
leftCouplet.innerHTML = '上联内容';
leftCouplet.style.position = 'fixed';
leftCouplet.style.left = '10px';
leftCouplet.style.top = '50%';
leftCouplet.style.transform = 'translateY(-50%)';

const rightCouplet = document.createElement('div');
rightCouplet.innerHTML = '下联内容';
rightCouplet.style.position = 'fixed';
rightCouplet.style.right = '10px';
rightCouplet.style.top = '50%';
rightCouplet.style.transform = 'translateY(-50%)';

// 添加到页面
document.body.appendChild(leftCouplet);
document.body.appendChild(rightCouplet);

方法二:响应式布局适配

结合CSS媒体查询与JavaScript,实现不同屏幕尺寸下的对联显示优化。

js实现对联

function adjustCouplet() {
    const screenWidth = window.innerWidth;
    if (screenWidth < 768) {
        leftCouplet.style.display = 'none';
        rightCouplet.style.display = 'none';
    } else {
        leftCouplet.style.display = 'block';
        rightCouplet.style.display = 'block';
    }
}

window.addEventListener('resize', adjustCouplet);
adjustCouplet(); // 初始化调用

方法三:添加关闭功能

为对联增加关闭按钮,提升用户体验。

js实现对联

const closeBtnLeft = document.createElement('span');
closeBtnLeft.innerHTML = '×';
closeBtnLeft.style.cursor = 'pointer';
closeBtnLeft.onclick = () => leftCouplet.remove();

const closeBtnRight = document.createElement('span');
closeBtnRight.innerHTML = '×';
closeBtnRight.style.cursor = 'pointer';
closeBtnRight.onclick = () => rightCouplet.remove();

leftCouplet.prepend(closeBtnLeft);
rightCouplet.prepend(closeBtnRight);

方法四:动画效果增强

使用CSS动画或JavaScript实现对联的入场效果。

leftCouplet.style.transition = 'opacity 0.5s, transform 0.5s';
rightCouplet.style.transition = 'opacity 0.5s, transform 0.5s';
leftCouplet.style.opacity = '0';
rightCouplet.style.opacity = '0';

setTimeout(() => {
    leftCouplet.style.opacity = '1';
    rightCouplet.style.opacity = '1';
}, 100);

方法五:内容动态加载

通过API或本地数据动态加载对联内容。

fetch('couplet-api-url')
    .then(response => response.json())
    .then(data => {
        leftCouplet.innerHTML = data.left;
        rightCouplet.innerHTML = data.right;
    });

注意事项

  • 对联内容应考虑文化适配性
  • 移动端需谨慎使用固定定位元素
  • 关闭功能应明确可见
  • 动画效果不宜过于复杂影响性能

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

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…