Log in

View Full Version : problem with editable marquee in I.E.



purteo
08-07-2011, 11:14 AM
I've an editable marquee


<table width=75% style="BORDER: dotted 4px #000000" bgcolor="#FFFFFF"><center>
<tr>
<td>

<div class="textwidget"><marquee direction="left" onmouseover="this.stop()" scrollamount="6" onmouseout="this.start()" align="left" height="150" width="750">

<a href="url photo 1"><img alt="" style="width: 100px; height: 150px;" src="target url 1" />

<a href="url photo 2"><img alt="" style="width: 100px; height: 150px;" src="target url 2" /></a>

<a href="url photo 3"><img alt="" style="width: 100px; height: 150px;" src="target url 3" /></a>

<a href="url photo 4"><img alt="" style="width: 100px; height: 150px;" src="target url 1" /></a>

</a></marquee></div>
</td>
</tr>
</center></table>

In my testing blog http://soutesting.blogspot.com/ works with firefox and google chrome but not with I.E. ( I think I have I.E. 7)
In this blog tolismovies.blogspot.com (which use something like that)
works perfect...!
Now in my blog souromancebooks.blogspot.com I use a ready slide show, but it is not editable with ndividual link for every photo.


If anyone know which is the problem with marquee or has something alternative to propose with the same efect

please be my guest...

But please try to be simple because I'm new in the sport!

jscheuer1
08-08-2011, 06:32 AM
I haven't checked your links but the code in your post is non-satandard (invalid by w3c standards). It has a closing </a> tag out of place and center tags that don't belong:


<table width=75% style="BORDER: dotted 4px #000000" bgcolor="#FFFFFF"><center>
<tr>
<td>

<div class="textwidget"><marquee direction="left" onmouseover="this.stop()" scrollamount="6" onmouseout="this.start()" align="left" height="150" width="750">

<a href="url photo 1"><img alt="" style="width: 100px; height: 150px;" src="target url 1" /><!-- missing </a> tag here -->

<a href="url photo 2"><img alt="" style="width: 100px; height: 150px;" src="target url 2" /></a>

<a href="url photo 3"><img alt="" style="width: 100px; height: 150px;" src="target url 3" /></a>

<a href="url photo 4"><img alt="" style="width: 100px; height: 150px;" src="target url 1" /></a>

</a><!-- </a> tag doesn't belong here --></marquee></div>
</td>
</tr>
</center></table>

Though still non-standard, the <center> tags could go outside the table. But what, if anything are you trying to center? Also non-standard but acceptable/safe would be to align the td center, which appears to be the intent. But that might not matter if the table is in a spot where it cannot be any wider than 750px. So here it is with the </a> tag fixed and the center issue dealt with:


<table width=75% style="BORDER: dotted 4px #000000" bgcolor="#FFFFFF">
<tr>
<td align="center">

<div class="textwidget"><marquee direction="left" onmouseover="this.stop()" scrollamount="6" onmouseout="this.start()" align="left" height="150" width="750">

<a href="url photo 1"><img alt="" style="width: 100px; height: 150px;" src="target url 1" /></a>

<a href="url photo 2"><img alt="" style="width: 100px; height: 150px;" src="target url 2" /></a>

<a href="url photo 3"><img alt="" style="width: 100px; height: 150px;" src="target url 3" /></a>

<a href="url photo 4"><img alt="" style="width: 100px; height: 150px;" src="target url 1" /></a>

</marquee></div>
</td>
</tr>
</table>

If on the other hand you're trying to center the table, you can align it center:


<table align="center" width=75% style="BORDER: dotted 4px #0 . . .

purteo
08-08-2011, 09:52 AM
jscheuer1 thank you very much for your answer, but it doesn't work.

I try and delete the table, but still doesn't work.

The photos apeared but didn't stroll. The links work but the photos doesn't stroll....

If you (or anybody) can think something else please peply.

Thanks

jscheuer1
08-08-2011, 02:44 PM
Well, it worked here. Also, I just looked at your test page again, and the second one is OK-ish and works fine by itself:


<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<table width=75% style="BORDER: dotted 4px #000000" bgcolor="#FFFFFF">
<tr>
<td>

<div class="textwidget"><marquee direction="left" onmouseover="this.stop()" scrollamount="6" onmouseout="this.start()" align="left" height="150" width="750">

<a href="http://souromancebooks.blogspot.com/2011/08/accomplished-woman-jude-morgan.html"><img alt="" style="width: 100px; height: 150px;" src="http://1.bp.blogspot.com/-8cONP8n73oo/Tjx0XRnakQI/AAAAAAAAAEY/rjqt0xw1nWI/s1600/An+Accomplished+Woman+-+Jude+Morgan.jpg" /></a>

<a href="http://souromancebooks.blogspot.com/2011/08/indiscretion-jude-morgan.html"><img alt="" style="width: 100px; height: 150px;" src="http://3.bp.blogspot.com/-XebLNl4qdOs/TjxvJPTej2I/AAAAAAAAAEU/raGoxW_9U38/s1600/Indiscretion+-+Jude+Morgan.jpg" /></a>

<a href="http://souromancebooks.blogspot.com/2011/08/nobodys-baby-but-mine-susan-elizabeth.html"><img alt="" style="width: 100px; height: 150px;" src="http://1.bp.blogspot.com/-DZy4B5L_IfM/TjxduALOxSI/AAAAAAAAAEQ/A0vLmMyPizU/s1600/Nobodys+Baby+But+Mine+-+Susan+Elizabeth+Phillips.jpg" /></a>

<a href="http://souromancebooks.blogspot.com/2011/08/matter-of-class-mary-balogh.html"><img alt="" style="width: 100px; height: 150px;" src="http://3.bp.blogspot.com/-RuTOKUE-r4Y/TjxFQbBKc1I/AAAAAAAAAEM/bjBJ6uEkTpM/s1600/A+Matter+of+Class+-+Mary+Balogh.jpg" /></a>

</marquee></div>
</td>
</tr>
</table>

</body>
</html>

So it must be some other thing(s) on the page that are messing it up.

In fact the test page's second one works in IE 9 and 8 in those browser's standards modes but it cannot because you have this tag in the head:


<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/>

It also works in Firefox.

What you have to do is remove that tag and then figure out what the problem is in IE 7. As the standalone code above works fine in that browser, it becomes a process of elimination, removing one thing at a time from the test page until IE 7 works.

JShor
08-09-2011, 12:28 AM
Using a marquee is bad. Using links in a marquee is a terrible idea. Viewing a marquee with links inside it in IE is suicide.

purteo
08-09-2011, 11:56 PM
John thank you very much for your help.
Josh thanks for your advise.

But still I have some problems.

So I found something else here http://www.huntingground.freeserve.co.uk/main/mainfram.htm?../imagery/imgscroll3h.htm

but I'm not sure how to use it.

here is the codec


<HTML>
<HEAD>
<TITLE>Horizontal Image Scroller 3</TITLE>

<script type="text/javascript">
<!--
// Jeff
// www.huntingground.freeserve.co.uk

// ********** User Defining Area **********

data=[
["pic01sm.jpg","Alt / Title text for image 1","pic01.jpg"],
["pic02sm.jpg","Alt / Title text for image 2","pic02.jpg"],
["pic03sm.jpg","Alt / Title text for image 3","pic03.jpg"],
["pic04sm.jpg","Alt / Title text for image 4","pic04.jpg"],
["pic05sm.jpg","Alt / Title text for image 5","pic05.jpg"],
["pic06sm.jpg","Alt / Title text for image 6","pic06.jpg"],
["pic07sm.jpg","Alt / Title text for image 7","pic07.jpg"],
["pic08sm.jpg","Alt / Title text for image 8","pic08.jpg"],
["pic09sm.jpg","Alt / Title text for image 9","pic09.jpg"],
["pic10sm.jpg","Alt / Title text for image 10","pic10.jpg"],
["pic11sm.jpg","Alt / Title text for image 11","pic11.jpg"],
["pic12sm.jpg","Alt / Title text for image 12","pic12.jpg"] // no comma at end of last index
]

imgPlaces=5 // number of images visible
imgWidth=100 // width of the images
imgHeight=100 // height of the images
imgSpacer=4 // space between the images

dir=0 // 0 = left, 1 = right

newWindow=1 // 0 = Open a new window for links 0 = no 1 = yes

// ********** End User Defining Area **********

moz=document.getElementById&&!document.all

step=1
timer=""
speed=50
nextPic=0
initPos=new Array()
nowDivPos=new Array()

function initHIS3(){

for(var i=0;i<imgPlaces+1;i++){ // create image holders
newImg=document.createElement("IMG")
newImg.setAttribute("id","pic_"+i)
newImg.setAttribute("src","")
newImg.style.position="absolute"
newImg.style.width=imgWidth+"px"
newImg.style.height=imgHeight+"px"
newImg.style.border=0
newImg.alt=""
newImg.i=i
newImg.onclick=function(){his3Win(data[this.i][2])}
document.getElementById("display_area").appendChild(newImg)
}

containerEL=document.getElementById("his3container")
displayArea=document.getElementById("display_area")
pic0=document.getElementById("pic_0")

containerBorder=(document.compatMode=="CSS1Compat"?0:parseInt(containerEL.style.borderWidth)*2)
containerWidth=(imgPlaces*imgWidth)+((imgPlaces-1)*imgSpacer)
containerEL.style.width=containerWidth+(!moz?containerBorder:"")+"px"
containerEL.style.height=imgHeight+(!moz?containerBorder:"")+"px"

displayArea.style.width=containerWidth+"px"
displayArea.style.clip="rect(0,"+(containerWidth+"px")+","+(imgHeight+"px")+",0)"
displayArea.onmouseover=function(){stopHIS3()}
displayArea.onmouseout=function(){scrollHIS3()}

imgPos= -pic0.width

for(var i=0;i<imgPlaces+1;i++){
currentImage=document.getElementById("pic_"+i)

if(dir==0){imgPos+=pic0.width+imgSpacer} // if left

initPos[i]=imgPos
if(dir==0){currentImage.style.left=initPos[i]+"px"} // if left

if(dir==1){ // if right
document.getElementById("pic_"+[(imgPlaces-i)]).style.left=initPos[i]+"px"
imgPos+=pic0.width+imgSpacer
}

if(nextPic==data.length){nextPic=0}

currentImage.src=data[nextPic][0]
currentImage.alt=data[nextPic][1]
currentImage.i=nextPic
currentImage.onclick=function(){his3Win(data[this.i][2])}
nextPic++
}

scrollHIS3()
}

timer=""
function scrollHIS3(){
clearTimeout(timer)
for(var i=0;i<imgPlaces+1;i++){
currentImage=document.getElementById("pic_"+i)

nowDivPos[i]=parseInt(currentImage.style.left)

if(dir==0){nowDivPos[i]-=step}
if(dir==1){nowDivPos[i]+=step}

if(dir==0&&nowDivPos[i]<= -(pic0.width+imgSpacer) || dir==1&&nowDivPos[i]>containerWidth){

if(dir==0){currentImage.style.left=containerWidth+imgSpacer+"px"}
if(dir==1){currentImage.style.left= -pic0.width-(imgSpacer*2)+"px"}

if(nextPic>data.length-1){nextPic=0}

currentImage.src=data[nextPic][0]
currentImage.alt=data[nextPic][1]
currentImage.i=nextPic
currentImage.onclick=function(){his3Win(data[this.i][2])}

nextPic++

}
else{
currentImage.style.left=nowDivPos[i]+"px"
}

}
timer=setTimeout("scrollHIS3()",speed)

}

function stopHIS3(){
clearTimeout(timer)
}

function his3Win(loc){
if(loc==""){return}
if(newWindow==0){
location=loc
}
else{
//window.open(loc)
newin=window.open(loc,'win1','left=430,top=340,width=300,height=300') // use for specific size and positioned window
newin.focus()
}
}

// add onload="initHIS3()" to the opening BODY tag

// -->
</script>

</HEAD>
<BODY onload="initHIS3()">
<h1><span>Horizontal Image Scroller 3</span></h1>
<center>

<DIV id="his3container" style="position:relative; width:0px;height:0px; border:1px solid red;overflow:hidden">

<div id="display_area" style="position:absolute; left:0; top:0; width:0px; height:0px; clip:rect(0,0,0,0)"></div>

</DIV>

</BODY>
</HTML>

and here is the instructions


User Options within the script

Data array
The data array holds information regarding the image, alt/title text, and link target
["pic1.jpg","Alt / Title text for image 1","page1.htm"],
["pic2.jpg","Alt / Title text for image 2","page2.htm"],

If no alt or title text or link is required leave the quotes empty
["pic3.jpg","Alt / Title text for image 3",""],
["pic4.jpg","","page3.htm"],

image_places=5
The number of image places are dynamically created, the script uses these image places to sequencially show all the available images.
The display area automatically resizes to accommodate this number of places. If you set more image places than there are images the extra places will show a duplicate image.
My example is set to show 5 images places scrolling through ten available images.

imgWidth=50 Width of the images
imgHeight=50 Height of the images
imgSpacer=0 Space between the images
dir=0 Scroll direction. The slideshow can scroll to the left or right
newWindow=0 Open a new window for links 0 = no 1 = yes


John do you think something like that will work?
If you think so I'd really appreciate if you can help me to understand where to put the link for the picture and where the target link, and what other changes I must do.
I also don't know where exactly in my blob Template must put the codec.(Now I"m using: Ad a widget -> HTML/JavaScript Add in the blogger)

I also found something here http://www.smoothdivscroll.com/colorbox.htm but I don't know how to use...

All these looks Greek to me.
(It's funny for me to say that because I'm from Greece!)

I feel that I'm using you...:o


-Sou

jscheuer1
08-10-2011, 02:59 PM
The problem with doing any of this on a blog is that you are limited by the blog template. This can usually be worked around, but not always.

The instructions for the script you found mean that you put the script in the head of the page and the:


<DIV id="his3container" style="position:relative; width:0px;height:0px; border:1px solid red;overflow:hidden">

<div id="display_area" style="position:absolute; left:0; top:0; width:0px; height:0px; clip:rect(0,0,0,0)"></div>

</DIV>

in the body of the page.

Edit the image paths in the array to be your own images. Add or remove:


["pic1.jpg","Alt / Title text for image 1","page1.htm"],

lines to list all your images and only your images. Upload the images to the server, and give it a shot.

But, as I say, you're limited as to what you can do by the blog template. So you may not be able to follow the instructions.

Do your best though on your test blog and give me a link to it if there are problems.

purteo
08-15-2011, 08:09 PM
I did it.

I found something here http://www.javascriptkit.com/howto/show3.shtml.

It's an easy codec which I put in a HTML/JavaScript widget in my blog.

Here is the code


<script type="text/javascript">
<!--
//preload images
var image1=new Image()
image1.src="first_img url"
var image2=new Image()
image2.src="second_img url"
var image3=new Image()
image3.src="third_img url"
//-->
</script>


<a href="javascript:slidelink()">
<img src="first_img url" name="slide" border="0" width="150" height="200" /></a>
<script type="text/javascript">
<!--
var step=1
var whichimage=1
function slideit(){
if (!document.images)
return
document.images.slide.src=eval("image"+step+".src")
whichimage=step
if (step<3)
step++
else
step=1
setTimeout("slideit()",1700)
}
slideit()
function slidelink(){
if (whichimage==1)
window.location="link1.htm"
else if (whichimage==2)
window.location="link2.htm"
else if (whichimage==3)
window.location="link3.htm"
}
//-->
</script>

You can see in my testing blog or in my regular blog http://souromancebooks.blogspot.com/

In my regular blog I have two slide show. A ready slide show from www.slide.com which looks great but it isn't editable and that I made whith this code, which is clickable with individual link for every img.