ZBLOG

css不能单独写要写在一起

好的,下面是将 CSS 和 JavaScript 代码整合在一起的版本。在这个示例中,CSS 将直接嵌入到 JavaScript 中,以便在创建模态框时一并插入。

完整代码

for (let i = 0; i < dialogData.data.attachmentList.length; i++) {
    const fileUrl = dialogData.data.attachmentList[i].fileUrl;
    const link = $('<a class="link view">').attr('href', fileUrl).text(dialogData.data.attachmentList[i].fileName);

    link.on('click', function (e) {
        e.preventDefault();
        e.stopPropagation();

        let imageUrl = '../d/exemptionReduction/selectPictureById?id=' + dialogData.data.attachmentList[i].id;

        // 添加模态框 HTML 和 CSS
        let modalHtml = `
            <style>
                #imageContainer {
                    width: 100%;
                    height: auto;
                    display: flex;
                    justify-content: center;
                    overflow: hidden; /* 防止溢出 */
                }
                #imagePreview {
                    max-width: none; /* 允许超出容器 */
                    cursor: move;
                    transition: transform 0.2s ease; /* 添加平滑过渡效果 */
                }
            </style>
            <div class="modal fade" id="imageModal" tabindex="-1" role="dialog" aria-labelledby="imageModalLabel" aria-hidden="true">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        </div>
                        <div class="modal-body">
                            <div id="imageContainer">
                                <img id="imagePreview" src="${imageUrl}" alt="Image Preview">
                            </div>
                        </div>
                    </div>
                </div>
            </div>`;

        $('body').append(modalHtml);
        $('#imageModal').modal('show');

        // Zoom functionality
        let scale = 1;

        const imgElement = $('#imagePreview');

        $('#imageContainer').on('wheel', function(e) {
            e.preventDefault();
            if (e.originalEvent.deltaY < 0) {
                scale *= 1.1; // Zoom in
            } else {
                scale /= 1.1; // Zoom out
            }
            imgElement.css('transform', `scale(${scale})`);
        });

        // Drag functionality
        let isDragging = false;
        let startX, startY;

        imgElement.on('mousedown', function(e) {
            isDragging = true;
            startX = e.pageX - imgElement.position().left;
            startY = e.pageY - imgElement.position().top;
            $(this).css('cursor', 'grabbing');
        });

        $(document).on('mouseup', function() {
            isDragging = false;
            imgElement.css('cursor', 'move');
        });

        $(document).on('mousemove', function(e) {
            if (isDragging) {
                let xPos = e.pageX - startX;
                let yPos = e.pageY - startY;
                imgElement.css({ top: yPos + 'px', left: xPos + 'px' });
            }
        });

        $('#imageModal').on('hidden.bs.modal', function () {
            $('#imageModal').remove();
        });
    });

    self.uploadImageBtn.after(link).hide();
}

实现说明:

  • 样式嵌入<style> 标签中的 CSS 被嵌入到 JavaScript 中,在生成模态框时同时加载。
  • 缩放与拖动功能:使用相同的逻辑处理图片的缩放和拖动。

这样,你就可以将所有内容放在一起,无需单独书写 CSS 文件。只要确保你的环境中已经引入了 jQuery 和 Bootstrap,就可以正常工作。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=18674

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?