在我的项目站点中,我使用 php 函数 imagecopymerge 根据 MySQL 中的表将基本图像( map )与标记(始终相同但重复的标记)合并。
我想将其迁移到 jQuery,因为图像的刷新是轻弹的,这非常难看。
您能指导我找到最佳解决方案吗?
非常感谢。
最佳答案
我认为您有一个通过用户交互更新的静态图像,对吗?更新在服务器上处理,并将新的“合并”图像发送回客户端?
如果是这种情况,您也许可以用相当多的 jquery 来替换它。但还是会有差异。
我会使用以下策略:
- 将静态背景图交付给客户端。
- 更改当前回发到服务器的任何函数,以便它调用 jquery 函数。
- 此函数应创建一个新图像(您的标记)并将其放置在 map 上的适当位置上。您应该能够使用 css 来做到这一点。
- 该函数还应该跟踪这些标记的位置,以便在用户完成操作后将它们的位置发送回服务器。
如果您能准确地告诉我您需要做什么,我很乐意提供更详细的建议。
更新
好的,根据您的评论,我了解到有一个数据库表规定了 map 的内容。它不一定由当前用户更新,但您经常检查更改。
您已经使用 ajax 来完成大部分工作,因此更改为 jquery 不会做太多事情。我想也许你只需要想一个新的方法来处理新图像的显示。
您可以尝试双缓冲技术,将两个图像放在页面中的同一位置,但任何时候只有其中一个图像正确可见。
- 对服务器执行相同的调用以检查更改并检索图像。我假设您获得了更新图像的新网址,但如果没有,您可能必须执行类似的操作。
- 更新页面上未显示的图像的 src
- 仅在将不透明度设置为 0 后才显示隐藏图像。
- 使用 jquery,淡入新图像并淡出旧图像。
如果做得正确,效果可能更像是 map 的平滑更新而不是闪烁。
关于php - JQuery 图像叠加(并摆脱 imagecopymerge),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2386374/