You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于新闻流反转及Box元素定时动效的技术实现问询

Solution for Dynamic Layout Tasks

Got it, let's tackle each of your three layout requirements step by step, building on the Flex code you provided:

1. Reverse News Feed Display Order

To reverse the order of your news feed, choose the approach that fits your feed's orientation:

For Vertical Feeds (most common):

Use flex-direction: column-reverse on the feed container to flip top-to-bottom order:

.news-feed {
  display: flex;
  flex-direction: column-reverse;
  gap: 1rem; /* Maintain consistent spacing between items */
}

For Horizontal Feeds:

Use flex-direction: row-reverse to flip left-to-right order:

.news-feed {
  display: flex;
  flex-direction: row-reverse;
  gap: 1rem;
}

If you prefer using order properties like your existing .box setup, adjust the order values to reverse the sequence of feed items (e.g., set the first item's order to the highest number, and vice versa).

2. Hourly Right-to-Left Reverse of box1 Content

To reverse the content inside box1 every hour, combine CSS and JavaScript to toggle the flex direction dynamically:

First, add a CSS class to reverse the row layout:

.box.reverse-row {
  flex-direction: row-reverse;
}

Then use setInterval to toggle this class every 3600000 milliseconds (1 hour):

// Toggle box1 content direction every hour
const box1 = document.getElementById('box1');
setInterval(() => {
  box1.classList.toggle('reverse-row');
}, 3600000);

This will flip the order of "One", "Two", etc., between left-to-right and right-to-left on an hourly cycle.

3. Daily Bottom-to-Up Movement of box1, box2, box3

For the daily upward movement, use CSS transitions for smooth animation and JavaScript to trigger the movement every 24 hours:

First, add CSS for the transition and movement state:

.box {
  /* Keep your existing flex styles */
  display: flex;
  flex-direction: row;
  position: relative;
  transition: transform 0.8s ease-in-out; /* Smooth animation timing */
}

.box.move-up {
  transform: translateY(-50px); /* Adjust this value to control upward distance */
}

Then use setInterval to trigger the movement. If you want the boxes to reset after moving, add a timeout to remove the class once the animation finishes:

// Move target boxes up every 24 hours
const targetBoxes = document.querySelectorAll('#box1, #box2, #box3');
setInterval(() => {
  targetBoxes.forEach(box => {
    box.classList.add('move-up');
    // Reset position after animation completes
    setTimeout(() => {
      box.classList.remove('move-up');
    }, 800); /* Match the transition duration */
  });
}, 86400000); // 86400000ms = 24 hours

If you want the boxes to stay in the moved position instead of resetting, simply remove the setTimeout block.


内容的提问来源于stack exchange,提问作者Taufiq Hidayah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:33:32