weixin_39427213 2021-03-07 01:33 采纳率: 0%
浏览 14

如何实现展开和收齐,展开的代码如下

<div class="text"><div class="fullhint">{{hint:完全展开}}</div></div></br><div class='from'>

 

<script>

// remove cloze syntax from revealed hint

var hint = document.querySelector('.fullhint>[id^="hint"]')

var html = hint.innerHTML.replace(/\[\[oc(\d+)::(.*?)(::(.*?))?\]\]/mg, "$2")

hint.innerHTML = html

// scroll to cloze

document.addEventListener('DOMContentLoaded', function() {

setTimeout(function(){

const cloze1 = document.getElementsByClassName("cloze")[0];

const rect = cloze1.getBoundingClientRect();

const absTop = rect.top + window.pageYOffset;

const absBot = rect.bottom + window.pageYOffset;

if (absBot >= window.innerHeight) {

const height = rect.top - rect.bottom

const middle = absTop - (window.innerHeight/2) - (height/2);

window.scrollTo(0, middle);};

}, 1);

}, false);

 

</script>

 

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-24 09:31
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要实现展开和收齐的效果,可以使用HTML、CSS和JavaScript。以下是一个简单的示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>展开和收齐效果</title>
        <style>
            .fullhint {
                display: none;
            }
            
            .fullhint>.highlight {
                background-color: #f0f0f0;
                padding: 10px;
                border-radius: 5px;
            }
    
            .hidden {
                display: block;
            }
        </style>
    </head>
    <body>
        <div class="text">
            <div class="fullhint">
                <div class="highlight">Hello World!</div>
            </div>
        </div>
        
        <script>
            // 展开和收齐的逻辑
            const fullHint = document.querySelector('.fullhint');
            const highlightElement = fullHint.querySelector('.highlight');
    
            fullHint.classList.add('hidden'); // 将全显示隐藏
    
            highlightElement.addEventListener('click', () => {
                fullHint.classList.remove('hidden');
            });
        </script>
    </body>
    </html>
    

    在这个例子中,我们首先为.fullhint元素添加了一个类名为.hidden,以便在开始时将其隐藏。

    然后,我们在.fullhint内部创建一个.highlight元素,并为其设置背景颜色、边框样式等。这样做的目的是为了展示当前被选中的部分。

    接下来,我们监听.highlight元素上的点击事件。当用户点击.highlight元素时,我们将.fullhint元素从.hidden状态移除,使其重新变为可见。

    这将实现你所描述的展开和收齐效果。

    评论

报告相同问题?